//#ifdef a


//优化方向
//1.多账号登录和记录存储（利用多文件）
//2.长按加速的改进
//3.将多个游戏结合起来 
//4.食物多样化和多量化（拉大屏幕地图）
//5.道具（加速道具...）
//6.蛇越长速度越快（减小t就行）
//7.main函数的定义警告去掉（可以补加个自定义函数）



#pragma once
#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

#define ROW 22 //纵坐标（每列ROW个方块）
#define COL 42 //横坐标（每行COL个方块）
//（单位是方格）,两列一行

#define ACCOUNT "zhaoliang"
#define PASSWORD "20021124"

#define KONG 0 //标记空（什么也没有）
#define WALL 1 //标记墙
#define FOOD 2 //标记食物
#define HEAD 3 //标记蛇头
#define BODY 4 //标记蛇身

#define UP 72 //方向键：上 
#define DOWN 80 //方向键：下
#define LEFT 75 //方向键：左
#define RIGHT 77 //方向键：右
#define SPACE 32 //暂停
#define ESC 27 //退出

int max, grade; //全局变量

int face[ROW][COL]; //标记游戏区各个位置的状态
//     纵坐标 横坐标
//蛇头
struct Snake
{
	int len; //记录蛇身长度
	int x; //蛇头横坐标
	int y; //蛇头纵坐标
}snake;

//蛇身
struct Body
{
	int x; //蛇身横坐标
	int y; //蛇身纵坐标
}body[ROW * COL]; //开辟足以存储蛇身的结构体数组


void HideCursor();//隐藏光标
void CursorJump(int x, int y);//光标跳转
void InitInterface();//初始化界面
void color(int c);//颜色设置
void ReadGrade();//从文件读取最高分
void WriteGrade();//更新最高分到文件
void InitSnake();//初始化蛇
void RandFood();//随机生成食物
void JudgeFunc(int x, int y);//判断得分与结束
void DrawSnake(int flag);//打印蛇与覆盖蛇
void MoveSnake(int x, int y);//移动蛇
void run(int x, int y);//执行按键
void Game();//游戏主体逻辑函数
void WriteGrade();//更新最高分到文件
void JudgeFunc(int x, int y);//判断得分与结束
void DrawSnake(int flag);//打印蛇与覆盖蛇
void MoveSnake(int x, int y);//移动蛇
void run(int x, int y);//执行按键
void Game();//游戏主体逻辑函数
void Log_In();//登录函数
void My_Time();//时间计数
void Mistake(int count);//错误惩罚
void Menu();//菜单
//#endif
